搜索 K
Appearance
博客正在加载中...
Appearance
MyCat2 的配置非常简单,甚至可以通过命令的方式来修改配置。
和服务相关的配置:/usr/local/mycat/conf/server.json,例如配置了端口号 8066,一些超时时间等,默认即可,这里不改动
主要是配置连接 MyCat 时的用户信息,文件所在地址 /usr/local/mycat/conf/users:
ll /usr/local/mycat/conf/users
总用量 4
-rw-r--r--. 1 root root 107 6月 14 20:55 root.user.json 命名方式:{用户名}.user.json,例如上面就是配置 root 用户。里面的内容 cat root.user.json:
{
"dialect":"mysql",
"ip":null,
"password":"123456",
"transactionType":"xa",
"username":"root"
}字段含义
ip:客户端访问 IP,建议为空,填写后只接受该 IP 的请求
username:用户名
password:密码
transactionType:事务类型,可选值:
proxy 本地事务,在涉及大于 1 个数据库的事务,commit 阶段失败会导致不一致,但是兼容性最好
XA 事务,需要确认存储节点集群类型是否支持 XA
可以通过语句查询:SELECT @@transaction_policy;
可以通过语句实现切换
set transaction_policy = 'xa'
set transaction_policy = 'proxy'
dialect:使用的数据库类型
isolation:可以加上这个设置,设置初始化的事务隔离级别。有如下取值:
READ_UNCOMMITTED:1
READ_COMMITTED:2
REPEATED_READ:3,默认
SERIALIZABLE:4配置 Mycat 连接的数据源信息,所在目录 mycat/conf/datasources 命名方式:{数据源名字}.datasource.json,例如:
ll /usr/local/mycat/conf/datasources
总用量 4
-rw-r--r--. 1 root root 445 6月 14 21:46 prototypeDs.datasource.json 我们可以看看里面的内容 cat prototypeDs.datasource.json:
{
"dbType":"mysql",
"idleTimeout":60000,
"initSqls":[],
"initSqlsGetConnection":true,
"instanceType":"READ_WRITE",
"maxCon":1000,
"maxConnectTimeout":3000,
"maxRetryCount":5,
"minCon":1,
"name":"prototypeDs",
"password":"learnMycatPassword0520@",
"type":"JDBC",
"url":"jdbc:mysql://localhost:3306/learnMycat?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8",
"user":"learnMycat",
"weight":0
} 其实我们在搭建环境的时候,已经配置过相关内容了。字段含义
dbType:数据库类型,例如 MySQL。一般来说 MyCat 对 MySQL 的兼容性最好
name:数据源名字,一般和文件名里的一样
user:用户名
password:密码
type:数据源类型,默认 JDBC
url:访问数据库地址
idleTimeout:空闲连接超时时间
initSqls:初始化 sql
initSqlsGetConnection:对于 jdbc 每次获取连接是否都执行 initSqls
instanceType:配置实例只读还是读写。可选值:READ_WRITE,READ,WRITE
weight :负载均衡权重
和连接相关的配置:
以上这么多字段我们不用背,后续我们讲怎么新增数据源
所在目录 mycat/conf/clusters,命名方式:{集群名字}.cluster.json。例如:
ll /usr/local/mycat/conf/clusters/
总用量 4
-rw-r--r--. 1 root root 289 6月 14 20:55 prototype.cluster.json里面的内容 cat prototype.cluster.json:
{
"clusterType":"MASTER_SLAVE",
"heartbeat":{
"heartbeatTimeout":1000,
"maxRetry":3,
"minSwitchTimeInterval":300,
"slaveThreshold":0
},
"masters":[
"prototypeDs"
],
"maxCon":200,
"name":"prototype",
"readBalanceType":"BALANCE_ALL",
"switchType":"SWITCH"
} 可以配置的字段:
clusterType:集群类型,可选值:
masters:配置主节点
replicas:配置从节点
readBalanceType:查询负载均衡策略,可选值:
switchType:切换类型,可选值:NOT_SWITCH 不进行主从切换,SWITCH 进行主从切换
配置逻辑库表,实现分库分表,所在目录 mycat/conf/schemas,命名方式:{库名}.schema.json,例如:
ll /usr/local/mycat/conf/schemas/
总用量 8
-rw-r--r--. 1 root root 5299 6月 14 20:55 mysql.schema.json 里面的内容很多,这里就不列出全部了。数据库配置:
{
"schemaName": "mydb",
"targetName": "prototype"
}字段含义:
{
"schemaName": "mysql-test",
"normalTables": {
"role_edges": {
"createTableSQL":null,//可选
"locality": {
"schemaName": "mysql",//物理库,可选
"tableName": "role_edges",//物理表,可选
"targetName": "prototype"//指向集群,或者数据源
}
}
}
.....
}详细配置,后续讲分库分表时再说